package com.geek.javase.ch11.work.predicatework;

/*
 *@author wangpeng
 *2025/10/22 20:04
 *@description TODO
 */

import java.util.ArrayList;
import java.util.function.Predicate;

/**
 * 集合信息筛选  String[] array = { "张三,男", "李四,女", "王二麻子,女" };
 * 数组当中有多条“姓名+性别”的信息如下，请通过Predicate接口的拼装将符合要求的字符串筛选到集合ArrayList中，
 * 需要同时满足两个条件： and与
 * 1.必须为女生
 * 2.姓名为4个字
 */
public class Demo4 {
    public static boolean testAnd(Predicate<String> predicate1, Predicate<String> predicate2, String str) {
        boolean flag = predicate1.and(predicate2).test(str);
        return flag;
    }

    public static void main(String[] args) {
        String[] array = { "张三,男", "李四,女", "王二麻子,女" };
        ArrayList<String> list = new ArrayList<>();
        for (String str : array) {
            if (testAnd(s -> s.split(",")[1].equals("女"), s -> s.split(",")[0].length() == 4, str)) {
                list.add(str);
            }
        }
        System.out.println(list);
    }
}
